#ifndef __LIB_AGORA_CORE_IERRORMANAGER_H__
#define __LIB_AGORA_CORE_IERRORMANAGER_H__

#include <map>
#include <string>
#include "IError.h"

namespace AgoraCore
{
	class IErrorManager
	{
	public:
		virtual IError*					GetError() = 0;
		virtual void					AddError(IError* error) = 0;
		virtual std::stack<IError*>		GetAllError() = 0;
		virtual void					PurgeError() = 0;
		virtual bool					HasError() = 0;
		virtual void					SetLogFilePath(const std::string& filePath) = 0;
		virtual const std::string&		GetLogFilePath() = 0;
		virtual void					Log(bool activate) = 0;
		virtual bool					LogIsActivated() = 0;
	};
}

#endif
